﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TMD.GT.Entidades;
using TMD.GT.AccesoDatos.Map;
using TMD.GT.AccesoDatos.Contrato;
using TMD.GT.AccesoDatos.Core;
using System.Data.Common;
using System.Data;


namespace TMD.GT.AccesoDatos.Implementacion
{
    public class CriterioEvaluacionData : DataBase, ICriterioEvaluacionData
    {
        public CriterioEvaluacionData(String connectionString)
            : base(connectionString)
        {
        }


        public List<CriterioEvaluacion> ListarCriteriosEvaluacion(TipoComponente tipoComponente)
        {
            List<CriterioEvaluacion> listaCriterios = new List<CriterioEvaluacion>();

            using (DbCommand command = DB.GetStoredProcCommand("dbo.USP_CRITERIOEVALUACION_SEL"))
            {
                DB.AddInParameter(command, "@CODIGO_TIPO", DbType.String, tipoComponente.CODIGO_TIPO);
                using (IDataReader reader = DB.ExecuteReader(command))
                {
                    while (reader.Read())
                    {
                        listaCriterios.Add(CriterioEvaluacionMap.Select(reader));
                    }
                }
            }

            return listaCriterios;
        }

        //modifico raul
        public List<CriterioEvaluacion> ListarCriteriosEvaluacionxComponente(Componente componente) {
            List<CriterioEvaluacion> listaCriterios = new List<CriterioEvaluacion>();

            using (DbCommand command = DB.GetStoredProcCommand("dbo.USP_CRITERIOEVALUACIONXCOMPONENTE_SEL"))
            {
                DB.AddInParameter(command, "@CODIGO_COMPONENTE", DbType.String, componente.CodigoComponente );
                using (IDataReader reader = DB.ExecuteReader(command))
                {
                    while (reader.Read())
                    {
                        listaCriterios.Add(CriterioEvaluacionMap.Select(reader));
                    }
                }
            }
            return listaCriterios;        
        }




    }
}
